<?php
namespace payment\service\interfaces;
use payment\models\QueryAccountVo;
use payment\models\SignVo;
use payment\models\TradeDetailVo;
use payment\models\TransferVo;
use payment\models\WithdrawVo;

/**
 * 支付网关服务接口
 * @package payment\service\interfaces
 * @author yangjian<yangjian102621@gmail.com>
 * @since 2016-11-16
 */
interface IPaymentService {

    /**
     * 签约，解约
     * @param SignVo $signVo
     * @return mixed
     */
    public function sign(SignVo $signVo);

    /**
     * 入金
     * @param TransferVo $transferVo
     * @return mixed
     */
    public function inPay(TransferVo $transferVo);

    /**
     * 出金
     * @param TransferVo $transferVo
     * @return mixed
     */
    public function outPay(TransferVo $transferVo);

    /**
     * 查询余额
     * @param QueryAccountVo $queryAccountVo
     * @return mixed
     */
    public function getBalance(QueryAccountVo $queryAccountVo);

    /**
     * 提现
     * @param WithdrawVo $withdrawVo
     * @return mixed
     */
    public function withdraw(WithdrawVo $withdrawVo);

    /**
     * 批量查询附属账户流水
     * @param TradeDetailVo $detailVo
     * @return mixed
     */
    public function tradedetail(TradeDetailVo $detailVo);

}
